package chapter07;

import java.util.ArrayList;

public class Java06_Collection {
    public static void main(String[] args) {
        // TODO 集合 - 泛型
        // 泛型语法<>：限定集合中元素的类型
        ArrayList<Person6> list = new ArrayList();

//        Person6 user0 = new User6();
//        user0.testUser();    //报错：多态场景约束
//        user0.testPerson();
        System.out.println("-----------------------");


        Person6 person = new Person6();
        User6 user = new User6();
        // 集合没有约束可以放任意类型的数据
        list.add(person);
        list.add(user);

//        list.remove(0);

        // 从集合中获取的对象类型为Object
        // list集合只约束了如何管理和存储对象，并没有约束存储数据的类型，容器中可以存储任意类型的对象
//        Object o = list.get(0);
//        o.testPerson();
        // 若想要执行对象的方法，那么需要进行强制类型转换
        // instanceof：判断对象类型是否为指定类型
//        if (o instanceof Person6) {
//            Person6 p = (Person6) o;
//            p.testPerson();
//        }
        Person6 person6 = list.get(0);
        person6.testPerson();

    }
}
class Person6 {
    public void testPerson() {
        System.out.println("person...");
    }
}
class User6 extends Person6{
    public void testUser() {
        System.out.println("user...");
    }
}
